﻿using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OpenCVWPF
{
    public class ImageHelper
    {
        /// <summary>
        /// 彩色图像二值化
        /// </summary>
        /// <param name="mat"></param>
        /// <returns></returns>
        public static Mat ConvertToBlackBinary(Mat mat) 
        {
            Mat gray = new Mat();
            Cv2.CvtColor(mat, gray, ColorConversionCodes.BGR2GRAY); // 图像转灰度图
            Scalar scalar = Cv2.Mean(gray); // 计算灰度图平均值
            // 这里灰度图的时候使用scalar.Val0，二通道使用Val1，三通道彩色图使用Val2，四通道有透明度的图像的使用Val3
            Cv2.Threshold(gray, gray, scalar.Val0, 255, ThresholdTypes.Binary); // 图像二值化 - 二值图的好处是去掉底色背景的
            return gray;
        } 
    }
}
